// HandlerSincronizacion.cpp: implementation of the HandlerSincronizacion class.
//
//////////////////////////////////////////////////////////////////////

#include "HandlerSincronizacion.h"
#include "Cliente.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

HandlerSincronizacion::HandlerSincronizacion(Cliente* cliente) {

	this->cliente = cliente;

}

HandlerSincronizacion::~HandlerSincronizacion() {

}

 
// se llena la data del nuevo nivel desde la lista que viene por el socket
void HandlerSincronizacion::notify(void* data) {
	//elimino el viejo nivel
	this->cliente->setSincronized(false);
	this->cliente->setLoading(true);
	if (this->cliente->getNivelActual() != NULL) {
		delete(this->cliente->getNivelActual());
	}
	listaFiguras* lista = new listaFiguras();
	Rebuilder::convertFiguras((char*)data,lista);
	Nivel* nivel = new Nivel(lista);
	//aca abajo resetear escenario, graficar escenario nuevo o algo asi
	//ALGO ASI
	this->cliente->setNuevoNivel(nivel);
	//this->cliente->setSincronized(true);
	int code = LISTO_EL_POLLO;
	int length = 1;
	char frula[]="1";
	this->cliente->getSocketClient().getOutputStream().write(reinterpret_cast<char*>(&code),sizeof(code));
	this->cliente->getSocketClient().getOutputStream().write(reinterpret_cast<char*>(&length),sizeof(length));
	this->cliente->getSocketClient().getOutputStream().write(reinterpret_cast<char*>(&frula),length);
}
